package javabook.ch08;
/*
 * 프로그램에서 인위적으로 예외를 발생시킬 수 있다
	예외를 발생시키기 위해 throw 문 사용
	throw 예외객체;
	또는
	throw new 예외객체타입(매개변수);
 */
public class ExceptionGen {
	public static void main(String args[]) {
	    try {
	      a();
	    } catch(ArrayIndexOutOfBoundsException e) {
	      System.out.println("==================================");
	      System.out.println("ArrayIndexOutOfBoundsException 처리 루틴");
	      System.out.println(e + " 발생");
	    }
	  }
	
	  static void a() {
	    try {
	      throw new NullPointerException("널 포인터 예외");  // 예외의 인위적 발생
	    } catch(NullPointerException e) {
	      System.out.println("==================================");
	      System.out.println("NullPointerException 처리 루틴");
	      System.out.println(e + " 발생");
	      throw new ArrayIndexOutOfBoundsException("배열 첨자 예외");
	      // 예외 처리 루틴에서 인위적으로 예외를 발생 시켜 호출한 메소드로 반환
	    }
	  }
}

//결과 
/*
 * ==================================
NullPointerException 처리 루틴
java.lang.NullPointerException: 널 포인터 예외 발생
==================================
ArrayIndexOutOfBoundsException 처리 루틴
java.lang.ArrayIndexOutOfBoundsException: 배열 첨자 예외 발생
*/
